﻿#define  _CRT_SECURE_NO_WARNINGS 1
//凯刚写了一篇美妙的作文，请问这篇作文的标题中有多少个字符？
//注意：标题中可能包含大、小写英文字母、数字字符、空格和换行符。
//\统计标题字 符数时，空格和换行符不计算在内。
//输入描述：
//输入文件只有一行， 一个字符串s。
//输出描述：
//输出文件只有一行，包含一个整数，即作文标题的字符数（不含空格和换行符）。
//#include <stdio.h>
//#include<stdlib.h>
//int main()
//{
//    char arr[20] = { 0 };
//    fgets(arr, 20, stdin);
//    int count = 0;
//    int i = 0;
//    while (arr[i] != '\0')
//    {
//        if (((arr[i] >= '0') && (arr[i] <= '9')) || ((arr[i] >= 'A') && (arr[i] <= 'Z')) || ((arr[i] >= 'a') && (arr[i] <= 'z')))
//        {
//            count++;
//        }
//        i++;
//    }
//    printf("%d", count);
//    return 0;
//}
#include<stdio.h>
#include<string.h>
//int main()
//{
//	char arr[50] = { 0 };
//	int i = 0;
//    int ch = 0;
//	int len = strlen(arr);
//    while ((ch = getchar()) != EOF)
//    {
//       
//        putchar(ch);
//        if ((i+1) % 3 == 0 && i != len - 1)
//        {
//            printf(",");
//        }
//        i++;
//      
//    }
//	return 0;
//}
//
//
//#include<stdio.h>
//int main() 
//{
//    int  i = 1, j = 2, k = 3;
//    if (i++ == 1 && (++j == 3 || k++ == 3))
//    printf("%d  %d  %d\n", i, j, k);
//}

//int main() 
//{
//    int a = 4, b = 5, c = 0, d;
//    d = !a && !b || !c;
//    printf("%d\n", d);
//}

//简单  通过率：51.36 % 时间限制：1秒  空间限制：256M
//warning 校招时部分企业笔试将禁止编程题跳出页面，为提前适应，
//练习时请使用在线自测，而非本地IDE。
//描述
//编写一个函数 long long factorial(int n)，用于计算 n 的阶乘。
//（要求使用递归实现）
//输入描述：
//键盘输入任意一个整数 n ，范围为 1 - 20
//输出描述：
//输出 n 的阶乘
//示例1
//输入：
//5
//复制
//输出：
//120
//复制
//#include<stdio.h>
//int Fib(int n)
//{
//	if (n == 1)
//		return 1;
//	else
//		return n * Fib(n - 1);
//
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = Fib(n);
//	printf("%d", ret);
//	return 0;
//}


//牛牛最近学会了一些简单的数学运算，
//例如 \sum_{ i = 1 }^ {n} \∑
//i = 1
//n
//​
//请你帮他模拟一下这个运算。 （即 1 + 2 + 3.... + n - 1 + n)
//#include <stdio.h>
//
//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    int i = 0;
//    int sum = 0;
//    for (i = 1; i <= n; i++)
//    {
//        sum += i;
//    }
//    printf("%d", sum);
//    return 0;
//}



//描述
//牛牛在尝试把一个整数逆序地输出。
//输入描述：
//输入一个正整数 n。保证个位数不是 0
//输出描述：
//逆序输出这个正整数。
//示例1
//输入：
//2345
//复制
//输出：
//5432


//#include <stdio.h>
//#include<math.h>
//int Fib(int n,int count)
//{
//    if (n > 9)
//        return Fib(n / 10,count-1) + (n % 10) * pow(10, count);
//    else
//        return n;
//}
//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    int count = 0;
//    int tmp = n;
//    while (tmp)
//    {
//        count++;
//        tmp /= 10;
//    }
//    int ret =Fib(n,count-1);
//    printf("%d", ret);
//    return 0;
//}


//牛牛正在尝试计算一个排列数 
//n^ m = n(n - 1)(n - 2)...(n - m + 1) = \frac{ n!}{(n - m)!} ​
//= n(n−1)(n−2)...(n−m + 1) =
//(n−m)!
//n!
//示例1
//输入：
//4 2
//复制
//输出：
//12

//#include <stdio.h>
//#include<math.h>
//int Fib(int n,int m)
//{
//    if (m == 1)
//        return n;
//    else
//        return n * Fib(n-1, m-1);
//
//}
//int main()
//{
//    int n = 0;
//    int m = 0;
//    scanf("%d %d", &n,&m);
//    int ret =Fib(n,m);
//    printf("%d", ret);
//    return 0;
//}



//牛牛定义了一个函数 digit(x, i)
//表示分离出 x 的后 i 位的数字
//输入描述：
//输入两个正整数 x 和 i
//输出描述：
//输出 x 的后 i 位数字
//示例1
//输入：
//23908 3
//
//输出：
//908


//
//
//
//#include <stdio.h>
//#include<math.h>
//int Fib(int n, int m)
//{
//    int i = 0;
//    int sum = 0;
//    int count = 0;
//    for (i = 0; i < m; i++)
//    {
//        sum += (n % 10) * pow(10, count);
//        count++;
//        n /= 10;
//    }
//    return sum;
//}
//int main()
//{
//    int n = 0;
//    int m = 0;
//    scanf("%d %d", &n, &m);
//    int ret = Fib(n, m);
//    printf("%d", ret);
//    return 0;
//}

//
//2023 - 02 - 20_
//课堂代码练习与本主题博客等_作业
//实现一个函数，可以左旋字符串中的k个字符。
//例如：
//ABCD左旋一个字符得到BCDA
//ABCD左旋两个字符得到CDAB
//#include<string.h>
//#include<stdio.h>
//void left_move(char arr[50], int k)
//{
//	int len = strlen(arr);
//	k = k % len;
//	int i = 0;
//	for (i = 0; i < k; i++)
//	{
//		char tmp = arr[0];
//		int j = 0;
//		for (j = 0; j < len - 1; j++)
//		{
//			*(arr + j) = *(arr + 1 + j);
//		}
//		arr[len - 1] = tmp;
//	}
//}
//int main()
//{
//	char arr[50] = { 0 };
//	int k = 0;
//	scanf("%s %d", arr,&k);
//	left_move(arr, k);
//	printf("%s", arr);
//	return 0;
//}


//杨氏矩阵
//有一个数字矩阵，矩阵的每行从左到右是递增的，
//矩阵从上到下是递增的，请编写程序在这样的矩阵中查找某个数字是否存在。
//要求：时间复杂度小于O(N);
//#include<stdio.h>
//int Find(int arr[3][3],int* p1, int* p2, int k)
//{
//	*p1 = 0;
//	*p2 = 2;
//	while (*p1<=2&&*p2>=0)
//	{
//		if (k > arr[*p1][*p2])
//		{
//			(*p1)++;
//		}
//		else if (k < arr[*p1][*p2])
//		{
//			(*p2)--;
//		}
//		else
//		{
//			return 1;
//		}
//	}
//	return 0;
//}
//int main()
//{
//	int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
//	int x = 0;
//	int y = 0;
//	int k = 0;
//	scanf("%d",&k);
//	int ret = Find(arr,&x,&y, k);
//	if (ret == 1)
//	{
//		printf("找到了，下标是%d %d", x+1, y+1);
//	}
//	else
//	{
//		printf("找不到");
//	}
//	return 0;
//}

//杨辉三角
//在屏幕上打印杨辉三角。
//1
//1 1
//1 2 1
//1 3 3 1

//int main()
//{
//	int arr[100][100] = { 0 };
//	int i = 0;
//	int j = 0;
//	int k = 0;
//	scanf("%d", &k);
//	for (i = 0; i < k; i++)
//	{
//		for (j = 0; j < k; j++)
//		{
//			if (j == 0 || i == j)
//			{
//				arr[i][j] = 1;
//			}
//			if (i > 1 && j<i && j>0)
//			{
//				arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
//			}
//		}
//	}
//	for (i = 0; i < k; i++)
//	{
//		for (j = 0; j < k; j++)
//		{
//			if (arr[i][j] != 0)
//			{
//				printf("%2d", arr[i][j]);
//			}
//		}
//		printf("\n");
//	}
//	return 0;
//}


//5位运动员参加了10米台跳水比赛，有人让他们预测比赛结果：
//A选手说：B第二，我第三；
//B选手说：我第二，E第四；
//C选手说：我第一，D第二；
//D选手说：C最后，我第三;
//E选手说：我第四，A第一；
//比赛结束后，每位选手都说对了一半，请编程确定比赛的名次。
//int main()
//{
//	int a, b, c, d, e;
//	for (a = 1; a <= 5; a++)
//	{
//		for (b = 1; b <= 5; b++)
//		{
//			for (c = 1; c <= 5; c++)
//			{
//				for (d = 1; d <= 5; d++)
//				{
//					for (e = 1; e <= 5; e++)
//					{
//						if ((b == 2)+ (a == 3)==1 &&
//							(b == 2) +( e == 4)==1 &&
//							(c == 1) + (d == 2)==1 &&
//							(d == 3)+ (c == 5)==1 &&
//							(e == 4) + (a == 1) ==1)
//						{
//							if ( a* b* c* d* e == 120)
//							{
//								printf("%d %d %d %d %d\n", a, b, c, d, e);
//							}
//						}
//					}
//				}
//			}
//		}
//	}
//
//	return 0;
//}


//日本某地发生了一件谋杀案，警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
//以下为4个嫌疑犯的供词:
//A说：不是我。
//B说：是C。
//C说：是D。
//D说：C在胡说
//已知3个人说了真话，1个人说的是假话。
//现在请根据这些信息，写一个程序来确定到底谁是凶手。
//int main()
//{
//	char killer = 0;
//	for(killer = 'a'; killer <= 'd';killer++)
//	{
//		if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
//		{
//			printf("killer=%c", killer);
//			break;
//		 }
//	}
//	return 0;
//}


















